package campus

import (
	"sync"
)

// PojoResult 结构体
type PojoResult struct {
	// 内容
	Contents []CompanyDto `json:"contents,omitempty" xml:"contents>company_dto,omitempty"`
	// 错误码
	ErrorCode string `json:"error_code,omitempty" xml:"error_code,omitempty"`
	// 接口错误描述
	ErrorMsg string `json:"error_msg,omitempty" xml:"error_msg,omitempty"`
	// 错误级别
	ErrorLevel string `json:"error_level,omitempty" xml:"error_level,omitempty"`
	// requestId
	RequestId string `json:"request_id,omitempty" xml:"request_id,omitempty"`
	// 错误详细信息
	ErrorExtInfo string `json:"error_ext_info,omitempty" xml:"error_ext_info,omitempty"`
	// 错误信息
	ApiErrorMsg string `json:"api_error_msg,omitempty" xml:"api_error_msg,omitempty"`
	// 错误码
	ApiErrorCode string `json:"api_error_code,omitempty" xml:"api_error_code,omitempty"`
	// 接口返回结果
	Content bool `json:"content,omitempty" xml:"content,omitempty"`
	// 是否调用成功
	Success bool `json:"success,omitempty" xml:"success,omitempty"`
	// 是否成功
	ApiSuccess bool `json:"api_success,omitempty" xml:"api_success,omitempty"`
}

var poolPojoResult = sync.Pool{
	New: func() any {
		return new(PojoResult)
	},
}

// GetPojoResult() 从对象池中获取PojoResult
func GetPojoResult() *PojoResult {
	return poolPojoResult.Get().(*PojoResult)
}

// ReleasePojoResult 释放PojoResult
func ReleasePojoResult(v *PojoResult) {
	v.Contents = v.Contents[:0]
	v.ErrorCode = ""
	v.ErrorMsg = ""
	v.ErrorLevel = ""
	v.RequestId = ""
	v.ErrorExtInfo = ""
	v.ApiErrorMsg = ""
	v.ApiErrorCode = ""
	v.Content = false
	v.Success = false
	v.ApiSuccess = false
	poolPojoResult.Put(v)
}
